package com.tiancheng.trade.authserver.controller.admin;

import com.tiancheng.trade.authserver.service.IAuthPermissionService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/permission")
public class PermissionController {
    @Resource
    private IAuthPermissionService service;
    @Resource
    private HttpServletRequest request;
//
//    @GetMapping("/getPageInfo")
//    //@RequiresPermissions({"auth:permission:query"})
//    public Result<PageInfo<PermissionListDTO>> getPageInfo(PermissionQuery param) {
//        return Result.success(this.service.getTengyunPageInfo(param));
//    }
//
//    /**
//     * oss获取分页信息
//     */
//    @GetMapping("/ossGetPageInfo")
//    //@RequiresRoles({"auth:application"})
//    public Result<PageInfo<Map<String, Object>>> ossGetPageInfo(Integer p, Integer page_size, String app_id) {
//        return Result.success(this.service.getOssPageInfo(p, page_size, app_id));
//    }
//
//    /**
//     * oss获取详情
//     */
//    @GetMapping("/ossGetDetail")
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetDetail(@RequestParam String id) {
//        return Result.success(this.service.ossGetDetail(id));
//    }
//
//    /**
//     * 获取本应用权限分页信息
//     */
//    @GetMapping("/getCurrentApplicationPageInfo")
//    @RequiresPermissions({"auth:permission:query"})
//    public Result<PageInfo<PermissionListDTO>> getCurrentApplicationPageInfo(PermissionQuery param) {
//        return Result.success(this.service.getCurrentApplicationPageInfo(param));
//    }
//
//    @GetMapping("/getDetail")
//    @RequiresPermissions({"auth:permission:detail"})
//    public Result<PermissionDetailDTO> getDetail(@RequestParam String id) {
//        return Result.success(this.service.getDetail(id));
//    }
//
//    @PostMapping("/save")
//    @RequiresPermissions({"auth:permission:add"})
//    public Result<String> save(@RequestBody PermissionAddUpdateDTO param) {
//        return Result.success(this.service.saveByDTO(param));
//    }
//
//    /**
//     * 保存权限,兼容oss老接口
//     */
//    @PostMapping("/ossSave")
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossSave(@RequestParam Map<String, String> param) {
//        Map<String, String> bodyParam = RequestBodyParamUtils.getBodyParam(this.request, new TypeReference<Map<String, String>>() {
//        });
//        if (bodyParam != null) {
//            param.putAll(bodyParam);
//        }
//        return Result.success(this.service.ossSave(param));
//    }
//
//    /**
//     * 在调用方应用程序下新建权限
//     */
//    @PostMapping("/application/save")
//    @RequiresRoles({"auth:application"})
//    public Result<String> applicationSave(@RequestBody PermissionAddUpdateDTO param) {
//        return Result.success(this.service.applicationSaveByDTO(param));
//    }
//
//    /**
//     * 更新调用方应用下的权限
//     */
//    @PutMapping("/application/update")
//    @RequiresRoles({"auth:application"})
//    public Result<Void> applicationUpdate(@RequestBody PermissionAddUpdateDTO param) {
//        this.service.applicationUpdateByDTO(param);
//        return Result.success();
//    }
//
//    /**
//     * 删除调用方应用下的权限
//     */
//    @DeleteMapping("/application/delete")
//    @RequiresRoles({"auth:application"})
//    public Result<Void> applicationDelete(String id, String code) {
//        this.service.applicationDelete(id, code);
//        return Result.success();
//    }
//
//    @PutMapping({"/globalUpdate", "replace"})
//    @RequiresPermissions({"auth:permission:edit"})
//    public Result<Void> globalUpdate(@RequestBody PermissionAddUpdateDTO param) {
//        this.service.globalUpdateByDTO(param);
//        return Result.success();
//    }
//
//    @DeleteMapping("/delete")
//    @RequiresPermissions({"auth:permission:delete"})
//    public Result<Void> delete(@RequestParam String id) {
//        this.service.removeByPrimaryKey(id);
//        return Result.success();
//    }
//
//    @GetMapping("/getOptions")
//    @RequiresPermissions({"auth:permission:query"})
//    public Result<List<PermissionOptionDTO>> getOptions(PermissionQuery param) {
//        return Result.success(this.service.getOptions(param));
//    }
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用
//     */
//    @GetMapping("/getUserPermissions")
//    @RequiresRoles({"auth:application"})
//    public Result<Set<String>> getUserPermissions(@RequestParam String userId) {
//        return Result.success(this.service.getUserStringPermissionsByApplicationId(userId,
//                SubjectUtils.getSessionCommonProfile().getId()));
//    }
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用,兼容oss老接口
//     */
//    @PostMapping("/ossGetUserPermissions")
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetUserPermissions(@RequestParam String uid, String app_id) {
//        if (StringUtils.isEmpty(app_id)) {
//            app_id = SubjectUtils.getSessionCommonProfile().getId();
//        }
//        return Result.success(this.service.ossGetUserStringPermissionsByApplicationId(uid, app_id));
//    }
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用,兼容oss老接口
//     */
//    @PostMapping("/ossGetUserPermissionsName")
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetUserPermissionsName(@RequestParam String uid, String app_id) {
//        if (StringUtils.isEmpty(app_id)) {
//            app_id = SubjectUtils.getSessionCommonProfile().getId();
//        }
//        return Result.success(this.service.ossGetUserStringPermissionsNameByApplicationId(uid, app_id));
//    }
//
//    /**
//     * 获取访问者在该系统下拥有的权限
//     */
//    @GetMapping("/getMyPermissions")
//    @RequiresAuthentication
//    public Result<Set<String>> getMyPermissions() {
//        return Result.success(this.service.getMyPermissions());
//    }
//
//    /**
//     * 获取访问者在所有系统下拥有的权限
//     */
//    @GetMapping("/getMyAllPermissions")
//    @RequiresAuthentication
//    public Result<SubjectAllPermissionResult> getMyAllPermissions() {
//        return Result.success(this.service.getMyAllPermissions());
//    }
//
//    /**
//     * 获取三方应用在调用方应用下拥有的权限,该接口只能由应用程序调用,不能由用户调用
//     */
//    @GetMapping("/getApplicationPermissions")
//    @RequiresRoles({"auth:application"})
//    public Result<Set<String>> getApplicationPermissions(@RequestParam String applicationId) {
//        return Result.success(this.service.getApplicationStringPermissions(SubjectUtils.getSessionCommonProfile().getId(), applicationId));
//    }
}
